Haptic feedback control system

ABSTRACT

A feedback control system is provided. The feedback control system receives a user input. The feedback control system determines a context. The feedback control system displays a control in response to the user input and based on the context. The feedback control system adjusts a feedback parameter according to the control, where the control is configured to adjust feedback output to a user based on the adjusted feedback parameter.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority of U.S. Provisional Patent ApplicationSer. No. 61/664,918, filed on Jun. 27, 2012, the disclosure of which ishereby incorporated by reference.

FIELD

One embodiment is directed generally to feedback, and more particularly,to haptic feedback.

BACKGROUND

Electronic device manufacturers strive to produce a rich interface forusers. Conventional devices use visual and auditory cues to providefeedback to a user. In some interface devices, kinesthetic feedback(such as active and resistive force feedback) and/or tactile feedback(such as vibration, texture, and heat) is also provided to the user,more generally known collectively as “haptic feedback” or “hapticeffects.” Haptic feedback can provide cues that enhance and simplify theuser interface. Specifically, vibration effects, or vibrotactile hapticeffects, may be useful in providing cues to users of electronic devicesto alert the user to specific events, or provide realistic feedback tocreate greater sensory immersion within a simulated or virtualenvironment.

Haptic feedback has also been increasingly incorporated in portableelectronic devices, referred to as “handheld devices” or “portabledevices,” such as cellular telephones, personal digital assistants(“PDAs”), tablets, smartphones, and portable gaming devices. Forexample, some portable gaming applications are capable of vibrating in amanner similar to control devices (e.g., joysticks, etc.) used withlarger-scale gaming systems that are configured to provide hapticfeedback. Additionally, devices such as cellular telephones andsmartphones are capable of providing various alerts to users by way ofvibrations. For example, a cellular telephone can alert a user to anincoming telephone call by vibrating. Similarly, a smartphone can alerta user to a scheduled calendar item or provide a user with a reminderfor a “to do” list item or calendar appointment.

Further, such devices can provide haptic feedback to complement audioand/or video effects that the devices can output to a user, to provide amore immersive experience. For example, if a user watches video that isoutput by a smartphone, or listens to music that is output by thesmartphone, the smartphone can also output haptic feedback thatcomplements the audio and/or video.

SUMMARY

One embodiment is a system that controls feedback output to a user. Thesystem receives a user input. The system determines a context. Thesystem displays a control in response to the user input and based on thecontext. The system adjusts a feedback parameter according to thecontrol, where the control is configured to adjust the feedback outputto the user based on the adjusted feedback parameter.

BRIEF DESCRIPTION OF THE DRAWINGS

Further embodiments, details, advantages, and modifications will becomeapparent from the following detailed description of the preferredembodiments, which is to be taken in conjunction with the accompanyingdrawings.

FIG. 1 illustrates a block diagram of a haptically-enabled system inaccordance with one embodiment of the invention.

FIG. 2 illustrates a block diagram of a haptic feedback system inaccordance with another embodiment of the invention.

FIG. 3 illustrates an example haptic control displayed within a userinterface of a device, according to one embodiment of the invention.

FIG. 4 illustrates example settings of a haptic control displayed withina user interface of a device, according to one embodiment of theinvention.

FIG. 5 illustrates an example audio control displayed within a userinterface, according to one embodiment of the invention.

FIG. 6 illustrates an example haptic control displayed simultaneouslyalong with an example audio control within a user interface, accordingto one embodiment of the invention.

FIG. 7 illustrates a flow diagram of the functionality of a hapticfeedback control module, according to one embodiment of the invention.

FIG. 8 illustrates an example virtual keyboard haptic control displayedsimultaneously along with an example audio control within a userinterface, according to one embodiment of the invention.

DETAILED DESCRIPTION

One embodiment is a haptic feedback control system that controls hapticfeedback that is output to a user based on input provided by a physicalbutton or switch of a device, and based on a context of the device. Thehaptic feedback control system can display a haptic control userinterface in response to the input provided by the physical button orswitch and in response to a determination that the context of the deviceis appropriate for controlling haptic feedback that is output to theuser. The user can interact with the haptic control user interface, forexample, by touching the haptic control user interface to control hapticfeedback that is provided by the device and that is output to the user.

As described herein, a “gesture” is any movement of the body thatconveys meaning or user intent. Simple gestures can be combined to formmore complex gestures. For example, bringing a finger into contact witha touch sensitive surface can be referred to as a “finger on” gesture,while removing a finger from a touch sensitive surface can be referredto as a separate “finger off” gesture. If the time between the “fingeron” and “finger off” gestures is relatively short, the combined gesturemay be referred to as “tapping,” or “pressing.” If the time between the“finger on” and “finger off” gestures is relatively long, the combinedgesture may be referred to as “long tapping,” or “long pressing.” If thedistance between the two dimensional (x,y) positions of the “finger on”and “finger off” gestures is relatively large, the combined gesture maybe referred to as “swiping.” If the distance between the two dimensional(x,y) positions of the “finger on” and “finger off” gestures isrelatively small, the combined gesture may be referred to as “smearing,”“smudging” or “flicking.” Any number of two-dimensional orthree-dimensional simple or complex gestures may be combined in anymanner to form any number of other gestures, including, but not limitedto, multiple finger contacts, palm or first contact, or proximity to thedevice. A gesture can also be any form of hand movement recognized by adevice having an accelerometer, gyroscope, or other motion sensor, andconverted to electronic signals. Such electronic signals can activate ahaptic effect, such as vibration, where the sensor captures the userintent that generates the haptic effect. Further a “control userinterface” or “control” is a user interface that can be displayed by adevice that allows a user to control feedback output by the device, whenthe user gestures within the user interface.

FIG. 1 illustrates a block diagram of a haptically-enabled system 110 inaccordance with one embodiment of the invention. System 110 includes atouch sensitive surface 111 or other type of user interface mountedwithin a housing 115, and may include physical buttons/switches 113.Internal to system 110 is a haptic feedback system that generates hapticeffects, such as vibrations, on system 110. In one embodiment, thehaptic effects are generated on touch surface 111.

The haptic feedback system includes a processor 112. Coupled toprocessor 112 is a memory 120 and an output device drive circuit 116,which is coupled to an output device 118 (such as an actuator).Processor 112 may be any type of general purpose processor, or can be aprocessor specifically designed to provide haptic effects, such as anapplication-specific integrated circuit (“ASIC”). Processor 112 may bethe same processor that operates the entire system 110, or may be aseparate processor. Processor 112 can decide what haptic effects are tobe played and the order in which the effects are played based on highlevel parameters. In general, the high level parameters that define aparticular haptic effect include magnitude, frequency and duration. Lowlevel parameters such as streaming motor commands could also be used todetermine a particular haptic effect. A haptic effect may be considereddynamic if it includes some variation of these parameters when thehaptic effect is generated or a variation of these parameters based on auser's interaction.

Processor 112 outputs the control signals to drive circuit 116, whichincludes electronic components and circuitry used to supply outputdevice 118 with the required electrical current and voltage to cause thedesired haptic effects. System 110 may include more than one outputdevice 118, and each output device may include a separate drive circuit116, all coupled to a common processor 112. Memory device 120 can be anytype of storage device or computer-readable medium, such as randomaccess memory (“RAM”) or read-only memory (“ROM”). Memory 120 storesinstructions executed by processor 112. Among the instructions, memory120 includes an output device drive module 122 which are instructionsthat, when executed by processor 112, generate drive signals for outputdevice 118 while also determining feedback from output device 118 andadjusting the drive signals accordingly. The functionality of module 122is discussed in more detail below. Memory 120 may also be locatedinternal to processor 112, or any combination of internal and externalmemory.

Touch surface 111 recognizes touches, and may also recognize theposition and magnitude or pressure of touches on the surface. The datacorresponding to the touches is sent to processor 112, or anotherprocessor within system 110, and processor 112 interprets the touchesand in response generates haptic effect signals. Touch surface 111 maysense touches using any sensing technology, including capacitivesensing, resistive sensing, surface acoustic wave sensing, pressuresensing, optical sensing, etc. Touch surface 111 may sense multi-touchcontacts and may be capable of distinguishing multiple touches thatoccur at the same time. Touch surface 111 may be a touchscreen thatgenerates and displays images for the user to interact with, such askeys, dials, etc., or may be a touchpad with minimal or no images.

System 110 may be a handheld device, such a cellular telephone, personaldigital assistant (“PDA”), computer tablet, gaming console, etc. or maybe any other type of device that provides a user interface and includesa haptic effect system that includes one or more eccentric rotating massmotors (“ERMs”), linear resonant actuators (“LRAs”), electrostatic orother types of actuators. The user interface may be a touch sensitivesurface, or can be any other type of user interface such as a mouse,touchpad, mini-joystick, scroll wheel, trackball, game pads or gamecontrollers, etc. In embodiments with more than one actuator, eachactuator may have a different output capability in order to create awide range of haptic effects on the device. Each actuator may be anytype of haptic actuator or a single or multidimensional array ofactuators.

FIG. 2 illustrates a block diagram of a haptic feedback system 210 inaccordance with another embodiment of the invention. In one embodiment,haptic feedback system 210 is part of a device (such as device 110 ofFIG. 1), and haptic feedback system 210 provides a haptic feedbackcontrol functionality for the device. Although shown as a single system,the functionality of haptic feedback system 210 can be implemented as adistributed system. Haptic feedback system 210 includes a bus 212 orother communication mechanism for communicating information, and aprocessor 222 coupled to bus 212 for processing information. Processor222 may be any type of general or specific purpose processor. Hapticfeedback system 210 further includes a memory 214 for storinginformation and instructions to be executed by processor 222. Memory 214can be comprised of any combination of RAM, ROM, static storage such asa magnetic or optical disk, or any other type of computer-readablemedium.

A computer-readable medium may be any available medium that can beaccessed by processor 222 and may include both a volatile andnonvolatile medium, a removable and non-removable medium, acommunication medium, and a storage medium. A communication medium mayinclude computer readable instructions, data structures, program modulesor other data in a modulated data signal such as a carrier wave or othertransport mechanism, and may include any other form of an informationdelivery medium known in the art. A storage medium may include RAM,flash memory, ROM, erasable programmable read-only memory (“EPROM”),electrically erasable programmable read-only memory (“EEPROM”),registers, hard disk, a removable disk, a compact disk read-only memory(“CD-ROM”), or any other form of a storage medium known in the art.

In one embodiment, memory 214 stores software modules that providefunctionality when executed by processor 222. The modules include anoperating system 215 that provides operating system functionality forhaptic feedback system 210, as well as the rest of a mobile device inone embodiment. The modules further include a haptic feedback controlmodule 216 that controls haptic feedback, as disclosed in more detailbelow. In certain embodiments, haptic feedback control module 216 cancomprise a plurality of modules, where each individual module providesspecific individual functionality for controlling haptic feedback.Haptic feedback system 210 will typically include one or more additionalapplication modules 218 to include additional functionality, such asIntegrator™ by Immersion Corporation.

Haptic feedback system 210, in embodiments that transmit and/or receivedata from remote sources, further includes a communication device 220,such as a network interface card, to provide mobile wireless networkcommunication, such as infrared, radio, Wi-Fi, or cellular networkcommunication. In other embodiments, communication device 220 provides awired network connection, such as an Ethernet connection or a modem.

Processor 222 is further coupled via bus 212 to a display 224, such as aLiquid Crystal Display (“LCD”), for displaying a graphicalrepresentation or user interface to a user. The display 224 may be atouch-sensitive input device, such as a touchscreen, configured to sendand receive signals from processor 222, and may be a multi-touchtouchscreen. Processor 222 may be further coupled to a keyboard orcursor control 228 that allows a user to interact with haptic feedbacksystem 210, such as a mouse or a stylus.

System 210, in one embodiment, further includes an actuator 226.Processor 222 may transmit a haptic signal associated with a generatedhaptic effect to actuator 226, which in turn outputs haptic effects suchas vibrotactile haptic effects. Actuator 226 includes an actuator drivecircuit. Actuator 226 may be, for example, an electric motor, anelectro-magnetic actuator, a voice coil, a shape memory alloy, anelectroactive polymer, a solenoid, an ERM, an LRA, a piezoelectricactuator, a high bandwidth actuator, an electroactive polymer (“EAP”)actuator, an electrostatic friction display, or an ultrasonic vibrationgenerator. In alternate embodiments, haptic feedback system 210 caninclude one or more additional actuators, in addition to actuator 226(not illustrated in FIG. 2). In other embodiments, a separate devicefrom haptic feedback system 210 includes an actuator that generates thehaptic effects, and haptic feedback system 210 sends generated hapticeffect signals to that device through communication device 220.

Haptic feedback system 210 can further be operatively coupled to adatabase 230, where database 230 can be configured to store data used bymodules 216 and 218. Database 230 can be an operational database, ananalytical database, a data warehouse, a distributed database, anend-user database, an external database, a navigational database, anin-memory database, a document-oriented database, a real-time database,a relational database, an object-oriented database, or any otherdatabase known in the art.

FIG. 3 illustrates an example haptic control 320 displayed within a userinterface of a device 310, according to one embodiment of the invention.Device 310 can be a handheld device, such a cellular telephone, PDA,computer tablet, gaming console, etc. or may be any other type of devicethat provides a user interface and includes a haptic effect system thatincludes one or more ERMs, LRAs, electrostatic or other types ofactuators. As previously described, device 310 can provide a user hapticfeedback, either in isolation, or in conjunction with audio and/orvideo. For example, device 310 can provide audio to a user (such asplaying music), and use one or more algorithms to covert the audio intohaptic feedback, and provide the haptic feedback in conjunction with theaudio. In general, users want to be in tight control of such hapticfeedback, and it can be a burden to exit an application that outputsaudio and/or video (thus, interrupting their entertainment), in order toadjust the haptic feedback. Further, because a user wishes to tightlycontrol the haptic feedback provided by device 310, it can be verycumbersome for a user to interrupt feedback provided by device 310 inorder to adjust how device 310 provides haptic feedback to the user. Forexample, while a user can pause the provision of audio by device 310 inorder to access a “settings” user interface of device 310 in order toadjust haptic feedback provided to the user, the access of the settingsuser interface can be a time-intensive process, and can interruptenjoyment of the audio provided by device 310.

According to the embodiment, device 310 can display haptic control 320,where haptic control 320 is configured to control haptic feedback thatcan be provided by device 310. More specifically, haptic control 320 canbe configured to adjust one or more haptic parameters of the hapticfeedback that can be provided by device 310, where the adjustment of theone or more haptic parameters adjusts the haptic feedback. An examplehaptic feedback parameter is a strength parameter that controls astrength of the haptic feedback. Another example haptic feedbackparameter is a density parameter that controls a density of the hapticfeedback. Yet another example haptic feedback parameter is a sharpnessparameter that controls a sharpness of the haptic feedback.

A further example haptic feedback parameter is a mode parameter thatcontrols a “mode” of the haptic feedback. More specifically, certainhaptic feedback parameter configurations can be classified as “modes,”where a haptic feedback parameter configuration includes a plurality ofhaptic parameters and a corresponding plurality of pre-defined values.In one example, a haptic feedback configuration where the strength,density, and sharpness parameters are associated with specific largevalues can be classified as a “strong” mode. In contrast, a hapticfeedback configuration where the strength, density, and sharpnessparameters are associated with specific small values can be classifiedas a “light” mode. By adjusting the mode parameter from a “light” modeto a “strong” mode, the haptic feedback can be adjusted, where thestrength, density, and sharpness of the haptic feedback are allincreased from their respectively small values to their respectivelylarge values. In certain embodiments the modes can be defined based oncontent that the haptic feedback can complement. For example, an “audio”mode can be defined to include a plurality of haptic parameters and acorresponding plurality of pre-defined values that produce hapticfeedback that complements audio. As another example, a “video” mode canbe defined to include a plurality of haptic parameters and acorresponding plurality of pre-defined values that produce hapticfeedback that complements video.

In the illustrated embodiment, haptic control 320 includes an icon, atitle, a slider, a label, an OK button, and a Cancel button. However,the illustrated embodiment is merely an example embodiment, and inalternate embodiment, haptic control 320 can have alternate appearances.

According to an embodiment, the displaying of haptic control 320 bydevice 310 can be controlled based on a “context” associated with device310. A “context” is a classification of functionality performed bydevice 310. As a non-limiting example, device 310 can perform thefunctionality of outputting communication-based content, such as a voicecall or an audio notification. This functionality can be classified as a“communication” context, and it can be determined that haptic feedbackis not appropriate for this context. As another non-limiting example,device 310 can perform the functionality of outputting media content,such as outputting an audio song or a video movie. This functionalitycan be classified as a “media” context, and it can be determined thathaptic feedback is appropriate for this context. These are merelynon-limiting examples of contexts of device 310, and there can be othertypes of contexts based on other types of functionality performed bydevice 310. According to the embodiment, haptic control 320 can only bedisplayed by device 310 when the context associated with device 310 is acontext appropriate for controlling haptic feedback. In the abovenon-limiting example, device 310 can prevent haptic control 320 frombeing displayed when device 310 is in a communication context. Incontrast, device 310 can cause haptic control to be displayed whendevice 310 is in a media context. In certain embodiments, device 310 cangenerate context metadata that identifies the context associated withdevice 310. Further, in certain embodiments, device 310 can preventhaptic control 320 from being displayed no matter what context isassociated with device 310.

As another non-limiting example, device 310 can perform thefunctionality of outputting media content that includes one or morepre-produced or pre-authored haptic effects. This functionality can beclassified as a “haptic media” context, and it can be determined thathaptic feedback is not appropriate for this context. For example, if amovie or game includes one or more pre-produced or pre-authored hapticeffects that the producer or programmer of that content inserted, it maybe desirable not to allow an end user to enable audio-generated hapticeffects, as these haptic effects may conflict with the pre-produced orpre-authored haptic effects. In this non-limiting example, forconsistency and clarity, a haptic control may still appear when the userinteracts with a physical switch of device 310 (or some other input),but the haptic control can be disabled, and thus, not allow the end userto interact with the haptic control.

In one embodiment, device 310 can perform the functionality ofautomatically converting audio that is output into haptic feedback. Inthis embodiment, device 310 can use one or more algorithms toautomatically convert audio that is to be output into haptic feedback,and output both the audio and the haptic feedback. This functionalitycan be classified as an “audio-to-haptic” context, and it can bedetermined that haptic feedback is appropriate for this context.Accordingly, device 310 can cause haptic control 320 to be displayedwhen device 310 is associated with an audio-to-haptic context, andhaptic control 320 can be used to control one or more parameters of thehaptic feedback that is generated by automatically converting audio thatis also generated by device 310 into the haptic feedback.

According to an embodiment, device 310 can include one or more physicalinput devices, such as one or more physical buttons or physicalswitches. Generally, a handheld device includes one or more physicalbuttons, such as push-buttons, or one or more physical switches, such asrocker switches, toggle switches, in-line switches, or push-buttonswitches. According to the embodiment, by touching a physical button orphysical switch of device 310, a user can cause device 310 to displayhaptic control 320. Further, by touching the physical button or physicalswitch of device 310, the user can cause device 310 to adjust one ormore settings of haptic control 320. For example, by touching thephysical button or physical switch of device 310, the user can causedevice 310 to adjust one or more haptic parameters of the hapticfeedback that can be provided by device 310, where the adjustment of theone or more haptic parameters adjusts the haptic feedback. In certainembodiments, when a user touches a physical button or physical switch ofdevice 310, device 310 only displays haptic control 320 when a contextassociated with device 310 is a context appropriate for controllinghaptic feedback. In certain embodiments, the physical button or physicalswitch of device 310 is dedicated to displaying haptic control 320 andadjusting one or more settings of haptic control 320, and does notperform any other functionality. In other embodiments, the physicalbutton or physical switch of device 310 also controls otherfunctionality of device 310, such as controlling one or morecharacteristics of audio that is output by device 310.

In certain embodiments, device 310 displays haptic control 320 when auser touches a plurality of physical buttons or physical switches ofdevice 310. The plurality of touches can be any combination of touches.In other embodiment, device 310 displays haptic control 320 when a usertouches a physical button or physical switch of device 310 for aspecified period of time. This can be identified as a “long-touch” or“long-press.” Thus, haptic control 320 is only displayed within device310 if the user long-touches or long-presses the physical button orphysical switch of 310.

In certain embodiments, device 310 displays haptic control 320 when auser touches a virtual button or switch that can be displayed by device310. For example, in one embodiment, device 310 displays haptic control320 when a user accesses a settings application and touches a virtualbutton or switch of the setting application that can be displayed bydevice 310. In other embodiments, device 310 displays haptic control 320when a user gestures within a surface of device 310. In otherembodiments, device 310 displays haptic control 320 when a user gestureswithin a proximate distance of a sensor of device 310.

In certain embodiments, haptic control 320 can include a slider. Inthese embodiments, a slider of haptic control 320 can be associated withone or more values used to control a haptic feedback parameter. Bymoving the slider of haptic control 320 to the left or to the right, theuser can control the value associated with haptic control 320, and thus,can control the haptic parameter associated with haptic control 320(i.e., either increasing or decreasing the value associated with thehaptic parameter). Thus, by moving the slider of haptic control 320 tothe left or to the right, the user can control the haptic feedback thatis output by device 310. The slider of haptic control 320 is furtherdescribed in greater detail in relation to FIG. 4.

In certain embodiments, device 310 simultaneously displays hapticcontrol 320 along with an audio control, where the audio control isconfigured to control audio that can be provided by device 310. Thesimultaneous display of haptic control 320 along with the audio controlis further described in greater detail in relation to FIGS. 5 and 6.

In certain embodiments, rather than displaying haptic control 320 whichis configured to control haptic feedback that can be provided by device310, device 310 can display a control configured to control othercontent or feedback that can be provided by device 310, and that can beoutput to a user. Such feedback or content can include audio or video.In an alternate embodiment, device 310 can display a control configuredto control haptic feedback that is not related to media content, such ashaptic feedback triggered by one or more keystrokes on a virtualkeyboard. Such an embodiment is described below in greater detail inrelation to FIG. 8. In another alternate embodiment, device 310 candisplay a control configured to control haptic feedback wherepre-produced or pre-designed haptic effects are present, as previouslydescribed. In this alternate embodiment, the control may be present butmay be disabled. In another embodiment where pre-produced orpre-designed haptic effects are present, the control can adjust one ormore haptic feedback parameters of the pre-produced or pre-designedhaptic effects. For example, a producer of a video, or other mediacontent, can design or produce one or more haptic effects that can beoutput by device 310 when the video is also output by device 310. Theuser can then control, for example, the strength of these produced ordesigned haptic effects with the control. Additionally, the one or morehaptic feedback parameters that can be adjusted by the control, and theway the one or more haptic feedbacks can be adjusted by the control, canbe determined by the producer. For example, the producer can decide thatonly strength, not density, of the haptic effects can be controlled bythe user. Thus, the haptic content that can be embedded in the mediacontent can also include information about which haptic feedbackparameters can be controlled by the user. In another alternateembodiment, a user interface event can include an associated control incertain contexts. For example, if device 310 executes a musicapplication, where audio is not playing, but a user is searching for asong or track to play within a user interface of the music application,then the user could trigger a haptic control for user interface events(for example, to control one or more haptic feedback parameters, such asa strength haptic feedback parameter, a density haptic feedbackparameter, or a sharpness haptic feedback parameters) at that time.However, once a song or track is selected and is played by the musicapplication, a context could switch to another context, such as a mediacontext, where the user could no longer trigger the haptic control foruser interface events. In yet another alternate embodiment, device 310can display a control configured to control haptic feedback that isgenerated by one or more signals received by device 310 from anotherdevice (such as a wired or wireless peripheral device). In anotherembodiment, device 310 can display a control configured to control abrightness of a display of device 310.

FIG. 4 illustrates example settings of a haptic control (i.e., hapticcontrols 420, 430, 440, and 450) displayed within a user interface of adevice 400, according to one embodiment of the invention. In certainembodiments, as previously described, a haptic control can include aslider, where the slider can be associated with one or more values usedto control a haptic feedback parameter. In the illustrated embodiment ofFIG. 4, the slider of the haptic control is associated with fourpositions, where each position corresponds to a value used to control ahaptic feedback parameter, where haptic control 420 illustrates a sliderassociated with a first position, haptic control 430 illustrates aslider associated with a second position, haptic control 440 illustratesa slider associated with a third position, and haptic control 450illustrates a slider associated with a fourth position. However, theillustrated embodiment of FIG. 4 is merely an example embodiment, and inalternate embodiments, a slider of a haptic control can be associatedwith any number of positions. Furthermore, in certain embodiments, theslider can be perceived to be associated with an infinite number ofpositions.

In another embodiment, a haptic control can control one or more dynamichaptic effects that use key frames (i.e., points of interpolation). Forexample, a slider that includes “FINITE” and “INFINITE” positions can bedisplayed within a context of dynamic haptic effects, and the key framescan be moved accordingly and adjusted in real time.

As previously described, by moving the slider of a haptic control to theleft or to the right, the user can control the value associated with thehaptic control, and thus, can control the haptic parameter associatedwith the haptic control (i.e., either increasing or decreasing the valueassociated with the haptic parameter). Thus, by moving the slider of thehaptic control to the left or to the right, the user can control thehaptic feedback that is output by device 410. In the illustratedembodiment of FIG. 4, the slider has a first position (illustrated byhaptic control 420), with a first value of a haptic parameter associatedwith a label of “Off.” The slider also has a second position(illustrated by haptic control 430), with a second value of a hapticparameter associated with a label of “Light.” The slider also has athird position (illustrated by haptic control 440), with a third valueof a haptic parameter associated with a label of “Moderate.” The slideralso has a fourth position (illustrated by haptic control 450), with afourth value of a haptic parameter associated with a label of “Strong.”According to the illustrated embodiment, when a user makes a gesturewithin the haptic control of device 410, the slider can move to one ofthe position illustrated by haptic controls 420, 430, 440, and 450.Furthermore, as illustrated by haptic controls 420, 430, 440, and 450,the label displayed within the haptic control can dynamically change asthe slider moves. In an alternate embodiment, rather than making agesture within the haptic control of device, the user can cause theslider to move by touching a physical button or switch of device 410. Incertain embodiments, the haptic control adjusts the haptic parameteronce the user moves the slider to a different position, in real-time. Inother embodiments, the haptic control waits to adjust the hapticparameter (for example by waiting for the user to make a gesture, suchas pressing an OK button, or by waiting for device 410 to cause thehaptic control not to be displayed). In certain embodiments, the hapticcontrol adjusts the haptic parameter by interpolating the hapticparameter between the previous value and the new value.

FIG. 5 illustrates an example audio control 520 displayed within a userinterface 510, according to one embodiment of the invention. In certainembodiments, as previously described, a device simultaneously displays ahaptic control along with an audio control, where the audio control isconfigured to control audio that can be provided by the device. Incertain embodiments, the device only simultaneously displays the hapticcontrol along with the audio control, when the context associated withthe device is a context appropriate for controlling haptic feedback.Otherwise, the device only displays the audio control and does notdisplay the haptic control. Also, in certain embodiments, the device caneither simultaneously display the haptic control and the audio control,or only display the audio control, in response to a user touching aphysical button or switch of the device.

According to the illustrated embodiment, audio control 520 is displayedwithin user interface 510 in response to a user touching a physicalbutton or switch of a device that displays user interface 510. Alsoaccording to the embodiment, the device determines that the device hasan associated context that is not appropriate for the control of hapticfeedback (for example, when the device is outputting audio, such as a“ringtone”). Because the device has an associated context that is notappropriate for the control of haptic feedback, the device displaysaudio control 520 within user interface 510, and does not display ahaptic control within user interface 510.

FIG. 6 illustrates an example haptic control 630 displayedsimultaneously along with an example audio control 620 within a userinterface 610, according to one embodiment of the invention. Accordingto the illustrated embodiment, audio control 620 is displayed withinuser interface 610 in response to a user touching a physical button orswitch of a device that displays user interface 610. Also according tothe embodiment, the device determines that the device has an associatedcontext that is appropriate for the control of haptic feedback (forexample, when the device is outputting audio, and automaticallyconverting the audio to haptic feedback, which is also output). Becausethe device has an associated context that is appropriate for the controlof haptic feedback, the device simultaneously displays audio control 620and haptic control 630 within user interface 610. Haptic control 630 canperform functionality similar to haptic control 320 of FIG. 3, andhaptic controls 420, 430, 440, and 450 of FIG. 4. In certainembodiments, a user can gesture within either audio control 620 orhaptic control 630, and subsequently, when a user touches a physicalbutton or switch of the device that displays user interface 610, theuser can control a slider of either audio control 620 or haptic control630. In alternate embodiments, when a user touches a physical button orswitch of the device that displays user interface 610, the user cancontrol a slider of audio control 620, and when a user makes a gesturewithin haptic control 630, the user can control a slider of hapticcontrol 630. In alternate embodiments, when a user touches a physicalbutton or switch of the device that displays user interface 610, theuser first controls audio control 620. When the slider of audio control620 is at a position that represents a value of “0,” a subsequent touchof a physical button or switch of the device that displays userinterface 610 controls haptic control 630.

In certain embodiments, rather than display a single audio control (suchas audio control 620) within user interface 610, the device can displaya plurality of audio controls within user interface 610. In theseembodiments, the device can simultaneously display haptic control 630along with the plurality of audio controls.

FIG. 7 illustrates a flow diagram of the functionality of a hapticfeedback control module (such as output device drive module 122 of FIG.1, or haptic feedback control module 216 of FIG. 2), according to oneembodiment of the invention. In one embodiment, the functionality ofFIG. 7 is implemented by software stored in memory or anothercomputer-readable or tangible medium, and executed by a processor. Inother embodiments, the functionality may be performed by hardware (e.g.,through the use of an ASIC, a programmable gate array (“PGA”), a fieldprogrammable gate array (“FPGA”), etc.), or any combination of hardwareand software. Furthermore, in alternate embodiments, the functionalitymay be performed by hardware using analog components.

The flow begins and proceeds to 710. At 710, a user input is receivedfrom one or more hardware buttons or switches of a device. In certainembodiments, the user input can include a signal generated in responseto one or more touches of the one or more hardware buttons or switchesof the device. In some of these embodiments, the user input can includea signal generated in response to a single touch of a single hardwarebutton or switch of the device. In other of these embodiments, the userinput can include one or more signals generated in response to acombination of touches of a plurality of hardware buttons or switches ofthe device. In other of these embodiments, the user input can include asignal generated in response to a long-touch of a single hardware buttonor switch of the device. In other embodiments, the user input can bereceived from one or more virtual buttons or switches of a device,rather than one or more hardware buttons or switches. In otherembodiments, the user input can be received from a sensor of a device,rather than one or more hardware button or switches. Further, in otherembodiments, the user input can include a signal generated in responseto a gesture that a user performs on the device. The flow proceeds to720.

At 720, a current context of the device is determined. The currentcontext can include a classification of functionality currentlyperformed by the device. The determination of the current context caninclude determining whether the current context is appropriate forcontrolling haptic feedback. The flow proceeds to 730.

At 730, a haptic control user interface (or “haptic control”) isdisplayed in response to the user input and based on the currentcontext. In certain embodiments, the haptic control can be displayedalong with an audio control user interface (or “audio control”) inresponse to the user input, where the audio control is configured toadjust audio. In some of these embodiments, the haptic control and theaudio control can be displayed simultaneously within a user interface ofthe device. In certain embodiments, the haptic control can include aslider. In other embodiments, rather than a haptic control, another typeof control can be displayed in response to the user input and based onthe current context. In certain embodiments, the control can be avirtual keyboard haptic control configured to adjust haptic feedbackthat is generated by a virtual keyboard. In other embodiments, thecontrol can be a haptic control configured to adjust haptic feedbackthat is generated by one or more pre-designed haptic effects. In otheralternate embodiments, the control can be a haptic control configured toadjust haptic feedback that is generated by a user interface element. Inyet other embodiments, the control can be a haptic control configured toadjust haptic feedback that is generated by one or more dynamic hapticeffects that use one or more key frames. In yet other alternateembodiments, the control can be a haptic control configured to adjusthaptic feedback that is generated by one or more signals that arereceived. In yet other embodiments, the control can be a controlconfigured to adjust a brightness of a display. The flow proceeds to740.

At 740, a second user input is received for the haptic control. Incertain embodiments, the second user input can include a signalgenerated in response to one or more touches of the one or more hardwarebuttons or switches of the device. In some of these embodiments, thesecond user input can include a signal generated in response to a singletouch of a single hardware button or switch of the device. In other ofthese embodiments, the second user input can include one or more signalsgenerated in response to a combination of touches of a plurality ofhardware buttons or switches of the device. In other of theseembodiments, the second user input can include a signal generated inresponse to a long-touch of a single hardware button or switch of thedevice. In other embodiments, the second user input can be received fromone or more virtual buttons or switches of a device, rather than one ormore hardware buttons or switches. In other embodiments, the second userinput can be received from a sensor of a device, rather than one or morehardware button or switches. In certain embodiments, the second userinput can include a signal generated in response to a gesture within thehaptic control. The flow proceeds to 750.

At 750, a haptic feedback parameter is adjusted based on the second userinput. The haptic control can adjust haptic feedback based on theadjusted haptic feedback parameter. In certain embodiments, the hapticfeedback parameter is a strength parameter, a density parameter, asharpness parameter, or a mode parameter. Also, in certain embodiments,the haptic feedback is generated based on the audio. In embodimentswhere another type of control is displayed rather than a haptic control,the control can adjust a feedback parameter of another type, where thecontrol can adjust feedback of another type based on the adjustedfeedback parameter. Such examples of feedback can include hapticfeedback that is generated by a virtual keyboard, haptic feedback thatis generated by one or more pre-designed haptic effects, haptic feedbackthat is generated by a user interface element, haptic feedback that isgenerated by one or more dynamic haptic effects that use one or more keyframes, or haptic feedback that is generated by one or more signals thatare received. In embodiments where another type of control is displayedrather than a haptic control, the control can adjust other content, suchas a brightness of a display. The flow then ends.

FIG. 8 illustrates an example virtual keyboard haptic control 830displayed simultaneously along with an example audio control 820 withina user interface 810, according to one embodiment of the invention.According to the illustrated embodiment, audio control 820 is displayedwithin user interface 810 in response to a user touching a physicalbutton or switch of a device that displays user interface 810. Alsoaccording to the embodiment, the device determines that the device hasan associated context that is appropriate for the control of hapticfeedback that is generated by virtual keyboard 840. Because the devicehas an associated context that is appropriate for the control of hapticfeedback generated by virtual keyboard 840, the device simultaneouslydisplays audio control 820 and virtual keyboard haptic control 830within user interface 810. Virtual keyboard haptic control 830 isconfigured to control haptic feedback that can be provided by virtualkeyboard 840. More specifically, virtual keyboard haptic control 830 canbe configured to adjust one or more haptic parameters of the hapticfeedback that can be provided by virtual keyboard 840, where theadjustment of the one or more haptic parameters adjusts the hapticfeedback. An example haptic feedback parameter is a strength parameterthat controls a strength of the haptic feedback. Another example hapticfeedback parameter is a density parameter that controls a density of thehaptic feedback. Yet another example haptic feedback parameter is asharpness parameter that controls a sharpness of the haptic feedback.

Thus, according to an embodiment, a haptic feedback control system thatcontrols haptic feedback based on a user input and a context of a devicecan be provided. The haptic feedback control system can greatly simplifyhaptic feedback control from a device user's perspective.

The features, structures, or characteristics of the invention describedthroughout this specification may be combined in any suitable manner inone or more embodiments. For example, the usage of “one embodiment,”“some embodiments,” “certain embodiment,” “certain embodiments,” orother similar language, throughout this specification refers to the factthat a particular feature, structure, or characteristic described inconnection with the embodiment may be included in at least oneembodiment of the present invention. Thus, appearances of the phrases“one embodiment,” “some embodiments,” “a certain embodiment,” “certainembodiments,” or other similar language, throughout this specificationdo not necessarily all refer to the same group of embodiments, and thedescribed features, structures, or characteristics may be combined inany suitable manner in one or more embodiments.

One having ordinary skill in the art will readily understand that theinvention as discussed above may be practiced with steps in a differentorder, and/or with elements in configurations which are different fromthose which are disclosed. Therefore, although the invention has beendescribed based upon these preferred embodiments, it would be apparentto those of skill in the art that certain modifications, variations, andalternative constructions would be apparent, while remaining within thespirit and scope of the invention. In order to determine the metes andbounds of the invention, therefore, reference should be made to theappended claims.

We claim:
 1. A computer-readable medium having instructions storedthereon that, when executed by a processor, cause the processor tocontrol feedback output to a user, the controlling comprising: receivinga user input; determining a current context; displaying a control inresponse to the user input and based on the current context; andadjusting a feedback parameter according to the control, wherein thecontrol is configured to adjust the feedback output to the user based onthe adjusted feedback parameter.
 2. The computer-readable medium ofclaim 1, wherein the control comprises a haptic control; wherein thefeedback comprises haptic feedback; wherein the feedback parametercomprises a haptic feedback parameter; and wherein the haptic control isconfigured to adjust the haptic feedback output to the user based on theadjusted haptic feedback parameter.
 3. The computer-readable medium ofclaim 1, wherein the receiving the user input comprises receiving asignal from a physical button or switch.
 4. The computer-readable mediumof claim 1, wherein the receiving the user input comprises receiving asignal from a virtual button or switch.
 5. The computer-readable mediumof claim 1, wherein the receiving the user input comprises receiving agesture.
 6. The computer-readable medium of claim 1, wherein thereceiving the user input comprises receiving one or more signals from aplurality of physical buttons or switches.
 7. The computer-readablemedium of claim 1, wherein the receiving the user input comprisesreceiving one or more signals from a plurality of virtual buttons orswitches.
 8. The computer-readable medium of claim 1, wherein thereceiving the input comprises receiving a signal from a sensor.
 9. Thecomputer-readable medium of claim 1, wherein the feedback parametercomprises one of a strength parameter, a density parameter, a sharpnessparameter, or a mode parameter.
 10. The computer-readable medium ofclaim 1, the controlling further comprising: displaying an audio controlin response to the user input, wherein the audio control is configuredto adjust audio.
 11. The computer-readable medium of claim 10, whereinthe control and the audio control are displayed simultaneously within auser interface.
 12. The computer-readable medium of claim 11, whereinthe feedback is generated based on the audio.
 13. The computer-readablemedium of claim 1, wherein the adjusting the feedback parameter furthercomprises: receiving a second user input for the control; and adjustingthe feedback parameter based on the second user input.
 14. Thecomputer-readable medium of claim 1, wherein the control comprises aslider.
 15. The computer-readable medium of claim 1, wherein the controlcomprises a virtual keyboard haptic control configured to adjust hapticfeedback output to the user that is generated by a virtual keyboard. 16.The computer-readable medium of claim 1, wherein the control comprises ahaptic control configured to adjust haptic feedback output to the userthat is generated by one or more pre-designed haptic effects.
 17. Thecomputer-readable medium of claim 1, wherein the control comprises ahaptic control configured to adjust haptic feedback output to the userthat is generated by a user interface element.
 18. The computer-readablemedium of claim 1, wherein the control comprises a haptic controlconfigured to adjust haptic feedback output to the user that isgenerated by one or more dynamic haptic effects that use one or more keyframes.
 19. The computer-readable medium of claim 1, wherein the controlcomprises a haptic control configured to adjust haptic feedback outputto the user that is generated by one or more signals that are received.20. The computer-readable medium of claim 1, wherein the controlcomprises a control configured to adjust a brightness of a display. 21.A computer-implemented method for controlling feedback output to a user,the computer-implemented method comprising: receiving a user input;determining a current context; displaying a control in response to theuser input and based on the current context; and adjusting a feedbackparameter according to the control, wherein the control is configured toadjust the feedback output to the user based on the adjusted feedbackparameter.
 22. The computer-implemented method of claim 21, wherein thecontrol comprises a haptic control; wherein the feedback compriseshaptic feedback; wherein the feedback parameter comprises a hapticfeedback parameter; and wherein the haptic control is configured toadjust the haptic feedback output to the user based on the adjustedhaptic feedback parameter.
 23. The computer-implemented method of claim21, wherein the receiving the user input comprises receiving a signalfrom a physical button or switch.
 24. The computer-implemented method ofclaim 21, further comprising: displaying an audio control in response tothe user input, wherein the audio control is configured to adjust audio.25. The computer-implemented method of claim 24, wherein the control andthe audio control are displayed simultaneously within a user interface.26. A feedback control system comprising: a memory configured to store afeedback control module; and a processor configured to execute thefeedback control module stored on the memory; wherein the feedbackcontrol module is further configured to receive a user input; whereinthe feedback control module is further configured to determine a currentcontext; wherein the feedback control module is further configured todisplay a control in response to the user input and based on the currentcontext; and wherein the feedback control module is further configuredto adjust a feedback parameter according to the control, wherein thecontrol is configured to adjust feedback output to a user based on theadjusted feedback parameter.
 27. The feedback control system of claim26, wherein the control comprises a haptic control; wherein the feedbackcomprises haptic feedback; wherein the feedback parameter comprises ahaptic feedback parameter; and wherein the haptic control is configuredto adjust the haptic feedback output to the user based on the adjustedhaptic feedback parameter.
 28. The feedback control system of claim 26,wherein the feedback control module is further configured to receive asignal from a physical button or switch.
 29. The feedback control systemof claim 26, wherein the feedback control module is further configuredto display an audio control in response to the user input, wherein theaudio control is configured to adjust audio.
 30. The feedback controlsystem of claim 29, wherein the feedback control module is furtherconfigured to display the control and the audio control simultaneouslywithin a user interface.